Mongo Backups
¿Qué es?
En el contexto de MongoDB, un backup es una copia de la base de datos o de una colección específica que se realiza para proteger la información almacenada.
Backup Completo
Se realiza una copia completa de todas las bases de datos y colecciones en el servidor MongoDB. Esto se puede hacer utilizando herramientas como mongodump
, que genera un conjunto de archivos BSON que contienen los datos de la base de datos.
¿Cómo hacerlo?
Primero, necesitaremos las herramientas como mongodump
, mongorestore
, bsondump
, que son herramientas que vienen incluidas cuando instalas MongoDB de manera local. En caso de que no quieras hacer esa instalación, sigue el proceso con Docker; de lo contrario, ve al paso 2.
- Docker
# Primero, corre el comando para el contenedor
docker run --name db -itd -v /Users/inmersys/Documents/backups:/app mongo
# Accede a su terminal
docker exec -it db /bin/bash
- Exportar de manera binaria, genera un BSON y JSON
# Necesita uri=url -d database -u user -p password --out donde se van a crear
# (En el ejemplo, si estás dentro de Docker, quiero hacerlo en /app, pero si lo tienes instalado, pon la URL de tu carpeta)
mongodump --uri "mongodb+srv://testmongo.41y5ajm.mongodb.net/" -d dev -u luisaux9 -p "dHdoaNsJJsKT" --out /app
Si quieres verificar si los datos se guardaron correctamente, utiliza el comando para ver el BSON que quieras visualizar. También, en caso de que quieras convertir ese BSON a JSON:
# Ver
bsondump rols.bson
# Convertir a un nuevo archivo. Cambia el nombre a 2 porque cuando se hace el mongodump, también genera JSON, así que ten cuidado.
bsondump rols.bson > rols2.json
- Importar de manera binaria
# Necesita uri=url -d database -u user -p password --drop se eliminarán las colecciones existentes de destino antes de restaurar los datos --dir donde está la carpeta con los BSON y JSON
mongorestore --uri="mongodb+srv://testmongo.41y5ajm.mongodb.net/" -d dev3 -u luisaux9 -p "dHdoaNsJJsKT" --drop --dir=/app/dev